﻿// -----------------------------------------------------------------------
// <copyright file="ConversorDeTabelaDePreco.cs" company="Microsoft">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

using System.Collections.Generic;
using System.Linq;

using LM.InterfacesFabricas.DTOs;
using LM.Negocio.Objetos;

namespace LM.Repositorios.Conversores
{
    public class ConversorDeTabelaDePreco
    {
        public TabelaPreco Converta(DtoTabelaPreco dtoTabelaPreco)
        {
            if (dtoTabelaPreco != null)
            {
                var tabelaPreco = new TabelaPreco();
                tabelaPreco.Codigo = dtoTabelaPreco.Codigo;
                tabelaPreco.Nome = dtoTabelaPreco.Nome;
                tabelaPreco.DataInicio = dtoTabelaPreco.DataInicio;
                tabelaPreco.DataFim = dtoTabelaPreco.DataFim;
                tabelaPreco.ItemTabela = new ConversorDeItemTabelaDePreco().ConvertaLista(dtoTabelaPreco.ItensTabela.ToList());

                return tabelaPreco;
            }

            return null;
        }

        public DtoTabelaPreco Converta(TabelaPreco tabelaPreco)
        {
            if (tabelaPreco != null)
            {
                var dtoTabelaPreco = new DtoTabelaPreco();
                dtoTabelaPreco.Codigo = tabelaPreco.Codigo;
                dtoTabelaPreco.Nome = tabelaPreco.Nome;
                dtoTabelaPreco.DataInicio = tabelaPreco.DataInicio;
                dtoTabelaPreco.DataFim = tabelaPreco.DataFim;

                if (tabelaPreco.ItemTabela != null)
                {
                    dtoTabelaPreco.ItensTabela = new ConversorDeItemTabelaDePreco().ConvertaLista(tabelaPreco.ItemTabela.ToList());
                }

                return dtoTabelaPreco;
            }
            return null;
        }

        public IList<DtoTabelaPreco> ConvertaLista(IList<TabelaPreco> tabelaPrecos)
        {
            var dtoGaragens = new List<DtoTabelaPreco>();

            foreach (var garagem in tabelaPrecos)
            {
                dtoGaragens.Add(Converta(garagem));
            }

            return dtoGaragens;
        }
    }
}
